// src/utils/dominoUtils.js

/**
 * 生成一套标准的双六多米诺骨牌 (28张)，并为每张牌添加唯一 ID
 * @returns {Array<{id: string, top: number, bottom: number}>} 返回包含带 ID 的多米诺骨牌对象的数组
 */
export function generateDominoSet() {
  const dominoes = [];
  let idCounter = 0;
  for (let i = 0; i <= 6; i++) {
    for (let j = i; j <= 6; j++) {
      // 使用简单的计数器生成唯一 ID
      dominoes.push({ id: `domino-${idCounter++}`, top: i, bottom: j });
    }
  }
  return dominoes;
}

/**
 * 洗牌函数 (Fisher-Yates shuffle)
 * @param {Array} array 需要洗牌的数组
 * @returns {Array} 返回洗牌后的新数组
 */
export function shuffleArray(array) {
  const shuffledArray = [...array]; // 创建副本以避免修改原数组
  for (let i = shuffledArray.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]]; // 交换元素
  }
  return shuffledArray;
}